package com.tianluo.tianluobookstore.controller.admin;

import com.tianluo.tianluobookstore.domain.dto.UserInfoDTO;
import com.tianluo.tianluobookstore.domain.view.UserInfoVO;
import com.tianluo.tianluobookstore.enums.CommonCodeEnum;
import com.tianluo.tianluobookstore.response.BaseResponse;
import com.tianluo.tianluobookstore.service.UserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/admin")
public class UserAdminController {

    @Autowired
    private UserService userService;

//    @GetMapping("/user/list")
//    public BaseResponse<List<UserInfoVO>> queryList(Integer pageSize, Integer pageNum) {
//
//        try {
//            List<UserInfoDTO> userInfoDTOList = userService.queryUserInfoList(pageSize, pageNum);
//
//            List<UserInfoVO> userInfoVOS = new ArrayList<>();
//            if (!CollectionUtils.isEmpty(userInfoDTOList)) {
//                for (UserInfoDTO userInfoDTO : userInfoDTOList) {
//                    UserInfoVO userInfoVO = new UserInfoVO();
//                    BeanUtils.copyProperties(userInfoDTO, userInfoVO);
//                    userInfoVOS.add(userInfoVO);
//                }
//
//                return BaseResponse.success(userInfoVOS);
//            }
//        } catch (BizException e) {
//
//            //doSomething
//        } catch (Exception e) {
//            //doSomething
//        }
//
//        return BaseResponse.fail(CodeEnum.ERROR.getCode(), CodeEnum.ERROR.getMessage());
//    }

    @GetMapping("/user/list")
    public BaseResponse<List<UserInfoVO>> queryList(Integer pageSize, Integer pageNum) {

        List<UserInfoDTO> userInfoDTOList = userService.queryUserInfoList(pageSize, pageNum);

        List<UserInfoVO> userInfoVOS = new ArrayList<>();
        if (!CollectionUtils.isEmpty(userInfoDTOList)) {
            for (UserInfoDTO userInfoDTO : userInfoDTOList) {
                UserInfoVO userInfoVO = new UserInfoVO();
                BeanUtils.copyProperties(userInfoDTO, userInfoVO);
                userInfoVOS.add(userInfoVO);
            }

            return BaseResponse.success(userInfoVOS);
        }

        return BaseResponse.fail(CommonCodeEnum.ERROR.getCode(), CommonCodeEnum.ERROR.getMessage());
    }
}
